package com.free.ext.web.spring.view;

import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * <p>
 * 功能概述:
 * </p>
 * <p>
 * 功能详述:
 * </p>
 */
public class JsonView {
    /*========================================================================*
     *                         Public Fields (公共属性)
     *========================================================================*/

    /*========================================================================*
     *                         Private Fields (私有属性)
     *========================================================================*/
    static HttpHeaders headers = new HttpHeaders();
    static
    {
        headers.add("Content-Type", "application/json;charset=UTF-8");
    }
    /*========================================================================*
     *                         Construct Methods (构造方法)
     *========================================================================*/

    /*========================================================================*
     *                         Public Methods (公有方法)
     *========================================================================*/
    public static ModelAndView render(Object model, HttpServletResponse response) throws IOException{
        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
        MediaType jsonMimeType = MediaType.APPLICATION_JSON;
        HttpStreamOutputMessage outputMessage = new HttpStreamOutputMessage(headers,response.getOutputStream());
        converter.write(model, jsonMimeType, outputMessage);
        return null;
    }
    /*========================================================================*
     *                         Private Methods (私有方法)
     *========================================================================*/
}
